package reflect;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRun {
    /*
    注解可以定义参数，格式如下
    类型 参数名() [default 默认值]

    参数可以定义多个。使用注解时，传递参数的语法为：
    @注解名(参数1=值1，参数2=值2...)

    如果注解中只有一个参数时，通常参数名选取value，此时使用注解
    时，传递参数语法可以忽略参数名，写为：
    @注解名(参数值) 当然也可以写成：@注解名(参数名=参数值)

    例如当前注解实际使用时可以写成：
    @AutoRun(5) 或 @AUtoRun(value=5)
    如果AutoRun中参数只有一个，且名字不是value，比如为sum
    那么使用时必须指定参数名：@AutoRun(sum=5)

    参数可以指定默认值，使用关键字default。指定后，使用注解时可以
    不传入参数，该参数会采用默认值。例如：
    @AutoRun 那么value的默认值就是1
     */
    int value() default 1;
}

